1. Field of the Invention
This invention relates to personal computer systems and in particular to a method and apparatus for extending the system addressable physical memory space in a manner transparent to users of the address space.
2. Description of the Related Art
Personal computer systems in general, and IBM.TM. personal computers in particular, have attained widespread use for providing computer power to many segments of today's society. Personal computer systems can usually be defined as a desk top, floor standing, or portable computer that consists of a system unit having a system processor, a display monitor, a keyboard, one or more diskette drives, a fixed disk storage, and an optional printer. These systems are designed primarily to give independent computing power to a single user or small group of users and are inexpensively priced for purchase by individuals or businesses. Examples of such personal computer systems are IBM's PERSONAL COMPUTER, PERSONAL COMPUTER XT.TM., PERSONAL COMPUTER AT.TM. and IBM's PERSONAL SYSTEM/2.TM. (hereinafter referred to as the IBM PC, XT.TM., AT.TM., and PS/2.TM. respectively) Models 25, 30, 50, 60, 70, 80, 90, and 95.
These systems can be classified into two general families. The first family, usually referred to as Family 1 Models, use a bus architecture exemplified by the IBM AT computer and other "IBM compatible" machines. The second family, referred to as Family 2 Models, use IBM's Micro Channel.TM. bus architecture exemplified by IBM's PS/2 Models 50 through 95. The bus architectures used in Family 1 and Family 2 are well known in the art.
Beginning with the earliest personal computer system of Family 1 models, the IBM PC, and through the Family 2 models the central processing unit was chosen from the Intel.TM. "86 Family" of processors. The Intel 86 Family of processors includes the 8088, 8086, 80286, 80386, and 80486 processors commercially available from Intel Corporation. The architecture of the Intel 86 Family of processors provides an upwardly compatible instruction set which assists in preserving software investments from previous processors in the 86 family. This upward compatibility of processors which preserves the software application base is one of the major factors which contributed to the enormous success of the IBM PC and subsequent models.
The IBM PC and XT were the first models of the IBM personal computer line and used the Intel 8088 processor. The next significant change to IBM personal computer systems was the IBM AT which used the Intel 80286 processor. The PS/2 line spanned several of the Intel processors. A system similar to the PC and XT was a version of the PS/2 Model 30 which used an Intel 8086. The PS/2 Models 50 and 60 both used the Intel 80286 processor. The Intel 80386 processor is used in the IBM PS/2 Model 80 and certain versions of the IBM PS/2 Model 70. Other versions of the IBM PS/2 Model 70, as well as the PS/2 Models 90 XP 486 and 95 XP 486, use the Intel 80486 processor. One of the common points in all these systems is the use of an Intel 86 family processor. A variety of commonly available and well known software operating systems, such as DOS or OS/2, can operate on various members of the Intel family of processors.
The processors in the Intel 86 family support a variety of "modes". The basic mode in the Intel 86 family is "Real" mode. Real mode is the only operating mode of the 8088 and 8086. Real mode supports a one megabyte address space. There are no protection mechanisms available in the 8088 and 8086 processors. The 80286 supports both a Real and "Protected" mode of operation. As the name "Protected" implies, Protected mode provides a protected mode of operation. This protection prevents an application from interfering with the operation of other applications or the operating system. The 80286 provides extended addressing capabilities over the 8088 and 8086 by allowing up to 16 megabytes to be directly addressed. To maintain downward compatibility the 80286 can be operated in Real mode to emulate the Real mode of the 8088 or 8086. The 80386 and 80486 extend the Intel 86 family architecture even further by providing the ability to address up to four gigabytes of physical memory. The 80386 and 80486 also support a "Virtual 86" mode of operation. The Virtual 86 mode supports the operational characteristics of the Real mode within the overall confines of the protected mode environment. This Virtual 86 mode is useful for providing a very high level of compatibility with applications which run under the DOS operating system but must now operate within an overall protected mode operating system.
By utilizing 32 address lines the 80386 and 80486 can achieve a total physical addressability of 2.sup.32 bytes which is 4,294,967,296 bytes. Currently providing that much physical random access memory on a single computer system is impractical. However, it has become practical to provide that much storage space on devices such as disks.
A hierarchy of storage exists in a computer system. As an example, the storage hierarchy arranged in order of speed can include:
1. processor registers (fastest) PA1 2. cache memory PA1 3. system random access memory PA1 4. disk PA1 5. tape (slowest)
In general, the cost per unit storage is more for the faster storage than it is for the slower storage.
The processor registers and cache tend to be small in size. System random access memory (RAM) is typically much larger and is used to store programs and data during program execution. Disk and tape storage devices have very large capacity, but data and programs on these devices must be moved into RAM before the system can use them. Increasing the amount of RAM would expand the capabilities of a computer system by allowing much larger programs and data sets to be stored where they can be accessed much faster than data or programs on disk or tape. However, RAM is a finite resource within any computer system which typically has a much higher cost per unit storage than disk or tape. Therefore, it would be desirable to increase the apparent amount of RAM without increasing the actual amount of RAM.